| item | format | time | difficulty |
|---|---|---|---|
| 1 | mc | 27.78586 | -1.8809028 |
| 2 | mc | 15.45258 | 0.8429586 |
| 3 | mc | 31.01590 | 1.1188154 |
| 4 | mc | 29.87421 | 0.7286774 |
| 5 | mc | 23.13401 | -0.4887099 |
2025-01-29
Testzusammenstellung
Automatisiert
Kompetenztests
Fragebögen
Large-scale Assessments
High-stakes Assessments
Pilotierungen
Hinsichtlich?
zusätzlich
Synonyme
Relevante Subklasse
Grundidee:
Maximierungs- oder Minimierungsproblem, wobei Lösungsraum durch (Ung-)Gleichungen eingeschränkt werden kann
Branch and Bound Algorithmen
Verwendet Konzepte der Mathematical Optimization (Mixed Integer Programming) zur Testzusammenstellung (Kuhn & Kiefer, 2015; van der Linden, 2005)
Zentrale Konzepte
| item | format | time | difficulty |
|---|---|---|---|
| 1 | mc | 27.78586 | -1.8809028 |
| 2 | mc | 15.45258 | 0.8429586 |
| 3 | mc | 31.01590 | 1.1188154 |
| 4 | mc | 29.87421 | 0.7286774 |
| 5 | mc | 23.13401 | -0.4887099 |
Spezifikationen
Decision Variables
Objective Function
Constraints
Paket verfügbar auf CRAN
Vignetten und Übersicht Funktionalität auf pkgdown
eatATA Tutorial Paper (Becker et al., 2021)
Minimiere durchschnittliche Blockzeit
Anzahl Items im Block
Itemformate
Solver Call
GLPK Simplex Optimizer 5.0
5 rows, 31 columns, 91 non-zeros
0: obj = 0.000000000e+00 inf = 1.000e+01 (1)
14: obj = 2.758548505e+02 inf = 0.000e+00 (0)
* 15: obj = 2.758548505e+02 inf = 0.000e+00 (0)
OPTIMAL LP SOLUTION FOUND
GLPK Integer Optimizer 5.0
5 rows, 31 columns, 91 non-zeros
30 integer variables, all of which are binary
Integer optimization begins...
Long-step dual simplex will be used
+ 15: mip = not found yet >= -inf (1; 0)
+ 15: >>>>> 2.758548505e+02 >= 2.758548505e+02 0.0% (1; 0)
+ 15: mip = 2.758548505e+02 >= tree is empty 0.0% (0; 1)
INTEGER OPTIMAL SOLUTION FOUND
Zusammengestellten Block inspizieren
$form_1
item format time difficulty
2 2 mc 15.45258 0.8429586
5 5 mc 23.13401 -0.4887099
6 6 mc 25.19305 0.4727387
10 10 mc 15.35510 1.3539724
12 12 open 35.94400 2.4992738
16 16 open 45.12778 -1.2862969
17 17 open 48.11908 -0.8612431
21 21 order 22.47400 -0.4314714
29 29 order 25.55363 0.2409175
30 30 order 19.50162 -0.5143411
Sum 148 <NA> 275.85485 1.8277985
Blockbesetzung zu Itempool hinzufügen
item_mini_out <- appendSolution(
solver_out,
items = items_mini,
idCol = "item"
)
item_mini_out[1:10, ] item format time difficulty form_1
1 1 mc 27.78586 -1.8809028 0
2 2 mc 15.45258 0.8429586 1
3 3 mc 31.01590 1.1188154 0
4 4 mc 29.87421 0.7286774 0
5 5 mc 23.13401 -0.4887099 1
6 6 mc 25.19305 0.4727387 1
7 7 mc 25.66340 -1.1805427 0
8 8 mc 30.21856 -0.3670765 0
9 9 mc 26.61642 -0.5687943 0
10 10 mc 15.35510 1.3539724 1
Anforderungen Blockbesetzung
Anforderungen Testformen
Häufig händisch (via Excel), aber:
calculateIIF() - Berechnung Item-InformationsfunktioncalculatExpectedRT() - Berechnung erwarteter AntwortzeitendummiesToFactor() - Transformation von Dummy-Variablen in FaktorencomputeTargetValues() - Berechnung von sinnvollen ZielwertenmaxObjective() - MaximierenminObjective() - MinimierenmaximinObjective() - Maximieren eines MinimumsminimaxObjective() - Minimieren eines MaximumscappedMaximinObjective() - Capped MaximinItemverwendung
depletePoolConstraint() - Erschöpfung des ItempoolsitemUsageConstraint() - ItemnutzungAnzahl Items pro Form
itemsPerFormConstraint() - Anzahl Items pro FormKategoriale Constraints
itemCategoryConstraint() - Kategoriale ConstraintsitemCategoryDeviationConstraint() - Abweichung von ZielwertitemCategoryMaxConstraint() - MaximumitemCategoryMinConstraint() - MinimumitemCategoryRangeConstraint() - Maximum und MinimumMetrische Constraints
autoItemValuesMinMaxConstraint() - Automatische Min/Max-BerechnungitemValuesConstraint() - Metrische ConstraintsitemValuesDeviationConstraint() - Abweichung von ZielwertitemValuesMaxConstraint() - MaximumitemValuesMinConstraint() - MinimumitemValuesRangeConstraint() - Maximum und MinimumMetrische Constraints über Testformen
acrossFormsConstraint() - Über TestformenIteminklusionen und -exklusionen
itemExclusionConstraint() - ItemexklusionenitemInclusionConstraint() - IteminklusionenVorbereitung von Iteminklusionen und -exklusionen
itemTuples() - Vorbereitung von Iteminklusionen und -exklusionenmatrixExclusionTuples() - Vorbereitung von ItemexklusionenstemInclusionTuples() - Vorbereitung von IteminklusionenGründe
Umsetzung
Gründe
Umsetzung
Input: Spalte mit Gruppierung
Output: Inclusion Tuples
Erstellung von Inclusion Constraints
Input: Spalte mit Exclusion-Listung
Output: Exclusion Tuples
Erstellung von Exclusion COnstraints
Notiert die Decision Variables, Objective Function und Constraints für folgendes ATA-Problem:
\[ i_{1, b1}, i_{2, b1}, i_{3, b1}, \ldots, i_{30, b1} \] \[ i_{1, b2}, i_{2, b2}, i_{3, b2}, \ldots, i_{30, b2} \]
\[ 27.79i_{1, b1} + 15.45i_{2, b1} + \ldots + 19.50i_{30, b1} - y <= 450 \] \[ 27.79i_{1, b1} + 15.45i_{2, b1} + \ldots + 19.50i_{30, b1} + y >= 450 \] \[ 27.79i_{1, b2} + 15.45i_{2, b2} + \ldots + 19.50i_{30, b2} - y <= 450 \] \[ 27.79i_{1, b2} + 15.45i_{2, b2} + \ldots + 19.50i_{30, b2} + y >= 450 \] \[ minimiere \quad y \]
\[ i_{1, b1} + i_{1, b2} <= 1 \] \[ i_{2, b1} + i_{2, b2} <= 1 \] \[ \ldots \]
\[ 1i_{1, b1} + 1i_{2, b1} + \ldots + 0i_{30, b1} >= 3 \] \[ 1i_{1, b2} + 1i_{2, b2} + \ldots + 0i_{30, b2} >= 3 \] \[ \ldots \]
Automatisierte Testzusammenstellung